home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 10
/
FM Towns Free Software Collection 10.iso
/
ms_dos
/
data
/
awkscrpt
/
awkscrpt.doc
< prev
next >
Wrap
Text File
|
1995-02-11
|
5KB
|
113 lines
JGAWKスクリプト集 By Jouji
JGAWK(UNIXコマンドAWKのGNU版GAWKのMS-DOS用日本語
化版)のスクリプト集です。テキスト処理のプログラムを手軽に作るには一番という
JGAWKですが、実際、私もテキスト処理はほとんどJGAWKだけで済ましてい
ます。
次のようなスクリプトを含んでいます。といってもこれらはほとんどテキスト処理
とはいえないような気がしますが。
足し算練習 Z80アセンブラ ライフゲーム
引き算練習 Z80デバッグファイル作成 住宅ローン月々返済額計算
掛け算練習 Z80シミュレータ 数式計算バッチ
割り算練習 年賀状当たり判定 SEDのyコマンドもどき
これらのスクリプトの機能、使い方を説明します。
足し算練習 TASI.AWK
使い方:JGAWK -f TASI.AWK 9
幼稚園、小学生低学年用の足し算練習用プログラムです。乱数で足し算の問題を表
示しますから、答えを入力して下さい。解らない場合は、'?'を入力すれば正解を表
示します。止める場合は'Q'か'q'を入力すると、成績と、よくできた場合はメッセー
ジを表示して終了します。演算数の上限(デフォルトは10)をパラメータで指定し
ます。
引き算練習 HIKI.AWK
使い方:JGAWK -f HIKI.AWK 9
小学生低学年用の引き算練習用プログラムです。操作はTASI.AWKと同様です。
掛け算練習 KAKE.AWK
使い方:JGAWK -f KAKE.AWK 9
小学生用の掛け算九九練習用プログラムです。操作はTASI.AWKと同様です。
割り算練習 WARI.AWK
使い方:JGAWK -f WARI.AWK 9
小学生用の割り算練習用プログラムです。操作はTASI.AWKと同様です。
Z80アセンブラ ASMZ80.AWK
使い方:ASMZ80 TEST
8ビットCPUのZ80用クロスアセンブラです。TEST.ASMからTEST.HEXファイル
を生成します。
Z80デバッグファイル作成 DBGZ80.AWK
使い方:DBGZ80 TEST
Z80シミュレータ(シミュレーションデバッガ)用のデバッグファイルを生成す
るツールです。TEST.ASMからTEST.DBGファイルを生成します。
Z80シミュレータ SIMZ80.AWK
使い方:SIMZ80 TEST
Z80の動作をシミュレートするデバッガです。DBGZ80.AWKによって作成される*.
DBGファイルが必要です。内部コマンドは、'H'によってヘルプが出るので、それを参
照して下さい。
年賀状当たり判定 ATARI.AWK
使い方:JGAWK -f ATARI.AWK
お年玉付き年賀状の当たりを調べるのって面倒くさいですよね。私が不平を言って
いると、妻が「どうせ上の方は当たらないのだから、末尾2桁だけ見ればいいのよ。」
などと言います。そんな、もったいない。確率は小さくとも0ではありません。そこ
で、このようなものを作りました。
ATARI.DATに当たり番号を1行にひとつずつ入力しておきます。カレントディレク
トリにATARI.DATをおいて、このスクリプトを実行します。はがきの番号の末尾の数
桁(2桁がちょうどいい)を入力すると、末尾が一致している当たり番号があれば反
転表示するので、後は目で確認します。子どもにやらせると、面白がってやるのでた
ちまち終わってしまいます。終了するには'^Z'(コントロールZ)を入力します。
ライフゲーム LIFE.AWK
使い方:JGAWK -f LIFE.AWK 5DOTS.DAT
有名なライフゲームです。データファイルを指定して実行したら、世代数の増分を
入力するとその数だけ世代を進めます。リターンのみで1ステップ実行になります。
'Q'を入力すると終了します。
ライフゲームとは次の規則による2次元のセルオートマトンです。
自分の回りの生の数 次の状態
2 今と同じ
3 生
それ以外 死
この規則は、回りの生の数に自分の生死も加えて、次の規則のように言い換えること
ができます。
自分と回りの生の数 次の状態
3 生
4 今と同じ
それ以外 死
このプログラムはこの規則によって計算しています。ライフゲームをAWKで作るな
んて無謀だと思いましたが、案の定最初に作ったものはとんでもなく遅いものでした。
でも何回か作りなおすうちにまあまあのスピードになったと思います。Cとかアセン
ブラのものとは比較になりませんが。結果を標準出力に出力しているため、リダイレ
クトやVzのコンソールファイルにより任意の世代の状態をファイルにしたりカット
アンドペーストしたりすることができます。
各データファイルの内容は次の通りです。
5DOTS.DAT 横一列の5ドット、最終的には信号灯になる
10DOTS.DAT 横一列の10ドット、最終的には周期15の振動子になる
5_5DOTS.DAT 横一列の5+5ドット、最終的にはパルサーCP48-56-72になる
GLIDER.DAT グライダー、斜めに移動する
GALAXY.DAT 周期8の振動子、形がおもしろい
SINDOU.DAT 周期2の振動子4種、ひきがえる、ビーコン、時計、点滅灯と
呼ばれる 左上 右上 左下 右下
住宅ローン月々返済額計算 LOAN.AWK
使い方:JGAWK -f LOAN.AWK
元利均等払いの住宅ローンの月々の返済額を計算するプログラムです。借入額、年
利、返済年数を入力すると、月々の返済額を表示します。リターンのみではデフォル
ト値を採用します。終了するには'^Z'(コントロールZ)を入力します。
数式計算バッチ CALC.BAT
使用例:CALC exp((8+2)*log(2))-1
計算式を手軽に計算するためのバッチコマンドです。数式の評価をJGAWKに任
せているため、JGAWKの組み込み関数も使用できます。
SEDのyコマンドもどき STRLIB.AWK
使用例:JGAWK -f TEST.AWK -f STRLIB.AWK YTEST.TXT
JGAWKは便利なのですが、SEDのyコマンドに相当する関数が無いのがちょ
っと不便です。最初、STRLIB.AWKの中のtr()関数を作ったのですが、さすがに遅い。
そこで、y()のようにしてみたら意外に速く(SEDには全然かないませんが)なっ
たのです。置換文字列中のハイフンは特定のものにしか使えません。関数exhyp()の
中に出ているものだけです。